/*
 * stack.h
 *
 * Version 1.0
 * Author: rtp
 *
 * Description: stack header
 * used for the Structured Stack Automata
 */

#ifndef STACK_
#define STACK_

struct s_position
{
	int content;
	struct s_position* next;
};

typedef struct s_position s_cell;
typedef s_cell* s_cell_p;
typedef s_cell_p stack;

//create a stack structure
stack s_create();

//push an element in the stack
void s_push(stack* aStack, int content);

//pop an element from the stack
int s_pop(stack* aStack);

//check if the stack is empty
int s_empty(stack* aStack);

#endif /* STACK_ */
